package com.shangdiao.sd_server.service;

import java.util.List;

import com.shangdiao.sd_server.generator.pojo.SdCertificate;
import com.shangdiao.sd_server.generator.pojo.SdCertificateExample;
import com.shangdiao.sd_server.generator.pojo.SdEduExp;
import com.shangdiao.sd_server.generator.pojo.SdEduExpExample;
import com.shangdiao.sd_server.generator.pojo.SdFeedback;
import com.shangdiao.sd_server.generator.pojo.SdInExp;
import com.shangdiao.sd_server.generator.pojo.SdInExpExample;
import com.shangdiao.sd_server.generator.pojo.SdInternshipReview;
import com.shangdiao.sd_server.generator.pojo.SdInternshipReviewExample;
import com.shangdiao.sd_server.generator.pojo.SdLabel;
import com.shangdiao.sd_server.generator.pojo.SdLabelExample;
import com.shangdiao.sd_server.generator.pojo.SdOutExp;
import com.shangdiao.sd_server.generator.pojo.SdOutExpExample;
import com.shangdiao.sd_server.generator.pojo.SdPCollection;
import com.shangdiao.sd_server.generator.pojo.SdPCollectionExample;
import com.shangdiao.sd_server.generator.pojo.SdPInternship;
import com.shangdiao.sd_server.generator.pojo.SdPInternshipExample;
import com.shangdiao.sd_server.generator.pojo.SdPParttime;
import com.shangdiao.sd_server.generator.pojo.SdPParttimeExample;
import com.shangdiao.sd_server.generator.pojo.SdParttimeReview;
import com.shangdiao.sd_server.generator.pojo.SdParttimeReviewExample;
import com.shangdiao.sd_server.generator.pojo.SdPerson;
import com.shangdiao.sd_server.generator.pojo.SdPersonBase;
import com.shangdiao.sd_server.generator.pojo.SdPersonBaseExample;
import com.shangdiao.sd_server.generator.pojo.SdPersonExample;
import com.shangdiao.sd_server.generator.pojo.SdPersonPhoto;
import com.shangdiao.sd_server.generator.pojo.SdPersonPhotoExample;
import com.shangdiao.sd_server.pojo.Row;


public interface PersonService {

	int countPersonBaseByExample(SdPersonBaseExample example);
	
	int countPersonByExample(SdPersonExample example);
	
	int insertPersonBase(SdPersonBase personBase);
	
	int insertPerson(SdPerson person);

	List<SdPersonBase> selectPersonBaseByExample(SdPersonBaseExample example);
	
	SdPerson selectPersonById(Integer personId);
	
	List<SdPerson> selectPersonByExample(SdPersonExample example);
	
	SdPersonBase selectPersonBaseById(Integer personId);
	
	int updatePersonById(SdPerson person);
	
	int updatePersonBaseById(SdPersonBase personBase);
 
	int insertEduExp(SdEduExp eduExp);
	
	int updateEduExp(SdEduExp eduExp);
	
	int updateEduExp(SdEduExp eduExp, SdEduExpExample eduExpExample);
	
	int deleteEduExp(Integer expId);
	
	int insertInExp(SdInExp inExp);
	
	int deleteInExp(Integer expId);
	
	int updateInExp(SdInExp inExp);
	
	int updateInExp(SdInExp inExp, SdInExpExample inExpExample);
	
	int insertOutExp(SdOutExp outExp);
	
	int deleteOutExp(Integer expId);
	
	int updateOutExp(SdOutExp outExp);
	
	int updateOutExp(SdOutExp outExp, SdOutExpExample outExpExample);
	
	int insertCertificate(SdCertificate certificate);
	
	int updateCertificate(SdCertificate certificate);
	
	int updateCertificate(SdCertificate certificate, SdCertificateExample certificateExample);
	
	int insertLabel(SdLabel label);
	
	int updateLabel(SdLabel label);
	
	int updateLabel(SdLabel label, SdLabelExample example);
	
	int insertPhoto(SdPersonPhoto personPhoto);
	
	int updatePhoto(SdPersonPhoto personPhoto);
	
	int updatePhoto(SdPersonPhoto personPhoto, SdPersonPhotoExample personPhotoExample);
	
	List<SdEduExp> selectEduExpByExample(SdEduExpExample example);
	
	List<SdInExp> selectInExpByExample(SdInExpExample example);

	List<SdOutExp> selectOutExpByExample(SdOutExpExample example);

	List<SdCertificate> selectCertificateByExample(SdCertificateExample example);
	
	SdCertificate selectCertificateById(Integer certificateId);

	List<SdLabel> selectLabelByExample(SdLabelExample example);

	List<SdPersonPhoto> selectPersonPhotoByExample(SdPersonPhotoExample example);
	
	SdPersonPhoto selectPersonPhotoById(Integer personPhotoId);
	
	int insertPCollection(SdPCollection pCollection);
	
	int updatePCollection(SdPCollection pCollection);
	
	int updatePCollection(SdPCollection pCollection, SdPCollectionExample pCollectionExample);
	
	List<SdPCollection> selectPCollectionList(SdPCollectionExample example);
	
	int insertPInternship(SdPInternship pInternship);
	
	int updatePInternship(SdPInternship pInternship);
	
	int updatePInternship(SdPInternship pInternship, SdPInternshipExample pInternshipExample);
	
	List<SdPInternship> selectPInternshipList(SdPInternshipExample example);
	
	int countPInternship(SdPInternshipExample example);
	
	int insertPParttime(SdPParttime pParttime);
	
	int updatePParttime(SdPParttime pParttime);
	
	int updatePParttime(SdPParttime pParttime, SdPParttimeExample pParttimeExample);
	
	List<SdPParttime> selectPParttimeList(SdPParttimeExample example);
	
	int countPParttime(SdPParttimeExample example);

	int updatePCollectionByExample(SdPCollection pCollection, SdPCollectionExample example);
	
	int insertParttimeReview(SdParttimeReview parttimeReview);
	
	int countParttimeReview(SdParttimeReviewExample example);
	
	int updateParttimeReview(SdParttimeReview parttimeReview, SdParttimeReviewExample example);
	
	int insertInternshipReview(SdInternshipReview internshipReview);
	
	int countInternshipReview(SdInternshipReviewExample example);
	
	int updateInternshipReview(SdInternshipReview internshipReview, SdInternshipReviewExample example);
	
	List<Row> getMyInvitation(Row paramRow);
	
	int insertFeedback(SdFeedback feedback);

	/**
	 * 热门实习标签
	 * @return
	 */
	List<Row> selectInternshipHotLabel();
	/**
	 * 热门兼职标签
	 * @return
	 */
	List<Row> selectParttimeHotLabel();


	
}
